/*
 *    Copyright (c) 2018-2025, lengleng All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the pig4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: lengleng (wangiegie@gmail.com)
 */

import { isNull } from "@/utils/validate";

/**
 * 存储localStorage
 */
export const setStore = (params) => {
  const { name, content, type, datetime } = params;
  const obj = {
    dataType: typeof content,
    content: content,
    type: type,
    datetime: new Date().getTime(),
  };
  if (type) window.sessionStorage.setItem(name, JSON.stringify(obj));
  else window.sessionStorage.setItem(name, JSON.stringify(obj));
};
/**
 * 获取localStorage
 */
export const getStore = (params) => {
  const { name, type } = params;
  let obj = {};
  let content;
  obj = window.sessionStorage.getItem(name);
  if (isNull(obj)) obj = window.sessionStorage.getItem(name);
  if (isNull(obj)) return;
  obj = JSON.parse(obj);
  if (obj.dataType === "string") {
    content = obj.content;
  } else if (obj.dataType === "number") {
    content = Number(obj.content);
  } else if (obj.dataType === "boolean") {
    content = eval(obj.content);
  } else if (obj.dataType === "object") {
    content = obj.content;
  }
  return content;
};
/**
 * 删除localStorage
 */
export const removeStore = (params) => {
  let { name } = params;
  window.sessionStorage.removeItem(name);
  window.sessionStorage.removeItem(name);
};
